package top.healthylife.gateway.platform.eye.dto.zhishichanquan.EyeReqIprPatentsSearchDto.req;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import top.healthylife.gateway.dto.annotation.ApiField;
import top.healthylife.gateway.dto.processor.GroupOneMustBeFilledInProcessor;
import top.healthylife.gateway.dto.request.req.ApiReqDto;

import javax.validation.constraints.NotNull;

/**
* @author: GenUtil
* @date: 2020-12-14 22:21:16
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("专利信息垂搜[1062]")
public class EyeReqIprPatentsSearchDto extends ApiReqDto {

    @ApiField("查询类别(多个用英文逗号分隔)1-专利名称 2-申请号 3-申请公布号 4-申请（专利权）人 5-发明人 6-代理机构 7-代理人")
    @JsonProperty("searchType")
    @ApiModelProperty(name = "查询类别(多个用英文逗号分隔)1-专利名称 2-申请号 3-申请公布号 4-申请（专利权）人 5-发明人 6-代理机构 7-代理人", example = "1,2,3")
    private String searchType;

    @ApiField("发布开始时间")
    @JsonProperty("pubDateBegin")
    @ApiModelProperty(name = "发布开始时间", example = "2010-01-01")
    private String pubDateBegin;

    @ApiField("申请开始时间")
    @JsonProperty("appDateBegin")
    @ApiModelProperty(name = "申请开始时间", example = "2010-01-01")
    private String appDateBegin;

    @ApiField("每页条数（默认20条，最大20）")
    @JsonProperty("pageSize")
    @ApiModelProperty(name = "每页条数（默认20条，最大20）", example = "20")
    private Integer pageSize = 20;

    @ApiField("发布结束时间")
    @JsonProperty("pubDateEnd")
    @ApiModelProperty(name = "发布结束时间", example = "2020-01-01")
    private String pubDateEnd;

    @ApiField("申请结束时间")
    @JsonProperty("appDateEnd")
    @ApiModelProperty(name = "申请结束时间", example = "2020-01-01")
    private String appDateEnd;

    @ApiField(value = "关键词(专利名称,申请号,申请公布号,申请（专利权）人,发明人,代理机构,代理人)", necessity = true, group = GroupOneMustBeFilledInProcessor.class)
    @NotNull(message = "关键词(专利名称,申请号,申请公布号,申请（专利权）人,发明人,代理机构,代理人)")
    @JsonProperty("keyword")
    @ApiModelProperty(name = "关键词(专利名称,申请号,申请公布号,申请（专利权）人,发明人,代理机构,代理人)", example = "百度")
    private String keyword;

    @ApiField("当前页数（默认第一页）")
    @JsonProperty("pageNum")
    @ApiModelProperty(name = "当前页数（默认第一页）", example = "1")
    private Integer pageNum = 1;

    @ApiField("专利类型 1-发明专利 2-实用新型 3-外观专利 4-PCT发明 5-PCT实用新型")
    @JsonProperty("patentType")
    @ApiModelProperty(name = "专利类型 1-发明专利 2-实用新型 3-外观专利 4-PCT发明 5-PCT实用新型", example = "1")
    private String patentType;

}
